My macOS app reads the crashlog files directly and submits them to my server for analysis if the user allows it. Which means I get to see the original .ips files generated on Monterey.
Now, these files appear to contain two JSON-formated records, the first detailing the app's properties. Here's a reformatted example of that as reported for my own app:
{
"app_name":"Find Any File",
"timestamp":"2022-01-02 10:12:36.00 -0500",
"app_version":"",
"slice_uuid":"a15335de-4432-3b53-bcdf-381424a7a330",
"build_version":"",
"platform":1,
"share_with_app_devs":0,
"is_first_party":1,
"bug_type":"309",
"os_version":"macOS 12.1 (21C52)",
"incident_id":"132818BA-3DBA-4B15-86CE-307BE961E7DC",
"name":"Find Any File"
}
The problem for me here is that sometimes, like in this example, both the app_version and the build_version values are empty. That makes it difficult for me to figure out which version of my app caused the crash.
I have 11 .ips crash reports, and when I compare the ones with valid version information against those missing them, the only consistency I find is that the value for is_first_party is 0 whenever I get valid versions, and 1 whenever I get empty values.
Can anyone explain why this happens and how I can make this work in all cases?
Note: One other developer (P.N.L.) has confirmed my findings, seeing empty versions as well, occosionally, and also directly related to the is_first_party value.
(I've also asked this on SO,, but it's not a good fit there)
2
0
1.8k